MRBackup Version 1.3 A Hard Disk Backup Utility for the Commodore Amiga 24 September 1987 Author: Mark R. Rinfret Introduction This document describes a program which will back up an Amiga hard disk drive to floppy disk media. It also represents the author's first serious (are you kidding?) attempt to write an Amiga program with an Intuition-based user interface. MRBackup is reasonably flexible, allowing you to back up individual directories, directory trees or a whole disk. You can backup from one directory hierarchy and restore to another. Incremental backups can be performed based on file modification dates. Just for fun, MRBackup also talks. Though this is mostly frivolous, the speech capability provides a method for alerting you that a new output disk is required for formatting. MRBackup is not fast. When choosing a method for packing the backup data, a fast-scan approach with specialized backup directory structure was considered. However, there is an inherent danger in committing multiple files to a specialized file system which can only be accessed through a solitary piece of software. I decided to maintain the AmigaDOS file system structure which has a great deal of integrity and allows the backup media to be accessed by standard software. The user should take a serious and organized approach to his backup methods, however. I highly recommend that backup listings be kept in a safe place (I use a 3-ring binder) and backup floppies be stored safe from magnetic damage or other hazards (like spilled coffee - argh!). A truly committed individual will backup his entire disk once a month, once a week and "areas of interest" once a day (default). One shortcoming(?) of the current version of MRBackup is that all directory nodes from the specified home path and down are preserved on the backup media, even if some of those nodes have no files eligible for backup by way of the backup date. Perhaps a later version of this program will address this issue. MRBackup attempts to economize on output media usage by using data compression/decompression (at the cost of time). This is an option which can be enabled/disabled via menu selection. The compression routine used was lifted from the Un*x "compress" program but has been adapted to employ buffering and AmigaDOS I/O. Operation To use MRBackup, click on the program icon or type MRBackup at the CLI prompt. A new window will open in which you will see a STOP sign and a couple of embedded windows. The "Pathname Specifications" window is where you tell MRBackup where data is coming from and going to. It is important to note that the meanings of "Home Path" and "Backup Path" remain the same for a backup or a restore operation. That is, the "Home Path" always refers to the hard disk pathname and "Backup Path" always refers to the floppy disk pathname. The "Listing Path" refers to the destination of a detailed listing of the contents of the backup floppies and may specify the printer (default) or a file on the hard disk. The listing is an option which may be enabled/disabled via menu selection. The "Exclude Path", if specified, is the name of a file which contains a list of file specifications, with possible Unix-style wildcard content, which are checked during backup against the names of files about to be backed up. Any filename matching an entry in this list will be excluded from the backup. The exclude file consists of file specifications, one per line, or comments (a line with a number sign - # - in column 1). Blank lines are ignored. Also, the specifications are case-insensitive. That is, "SYSTEM" and "system" are equivalent. Examples: # Exclude all object files *.o # Exclude all files beginning with "System": system* # Exclude all ".info" files: *.info # Exlude the "include" directory and all subdirectories: include You can customize the operation of MRBackup through the use of an initialization file. This file must be named S:MRBackup.init. With it, you may set your desired defaults and Flags. Each line in the file consists of an option setting, of the form: OPTION = VALUE or a comment. Comment lines begin with a number/pound/libra sign (#). A sample initialization file is included which illustrates the use of all possible parameter settings. Backing Up a Disk To back up your hard disk, or a section of it, first get an indication of the size of the area with the Info command, "ls" (if you have it), List, etc. If you multiply the total number of bytes (blocks * 512) by 0.65, then divide by 800000, you should get a very rough estimate (probably high) of the number of floppy disks required to back up that area. The floppies selected for backup need not be preformatted, as MRBackup will format them as needed. You should be sure, however, that no valuable data exists on them since it will be destroyed by the formatting process. Once your floppies are ready and stacked neatly within reach, the fun begins. First, modify the pathname specifications according to your requirements. The "Home Path" may include device names DH0..DH9 (depending upon your configuration) and may optionally specify a directory component, as well. If only the device name is specified, all files on the drive will be backed up. If a directory is specified, the backup will be limited to all files and subdirectories at or below that level. The backup path should be the DEVICE name of one of your floppy drives (DF0..DF3 are the allowed values here). Finally, the listing path may be set to the printer device (PRT:) or to the name of a file on a hard drive or any available floppy drive not being used by the backup. The listing path will be ignored if you set the No Listing option in the Flags menu. Make sure that you have set the desired options in the Flags menu, then select Backup from the Project menu. You will be prompted with a date requester. The default date value that appears is one day earlier than the current date. If that is satisfactory, simply depress the RETURN key and the backup will commence. If you desire to change the date, edit the date value as necessary, using the standard Amiga conventions. Remember that to clear the gadget you may press right-Amiga-x. A date value of 00/00/00 or a null string is allowed should you want to backup all files in the home path, regardless of their creation dates. Otherwise, the required date and time format is MM/DD/YY HH:MM:SS (24 hour clock), the time specification being optional. You will notice upward and downward pointing "arrows" above each date component. Clicking on the appropriate arrow will increment or decrement the respective portion of the date. Though the values normally will wrap around, not affecting adjacent date components, certain situations will arise where incrementing a day value may cause the month to increment (incrementing February 28 in a non-leap-year will yield March 31). I just didn't feel the extra logic was worth it (I got lazy). Once the date has been entered, the rest is fairly automatic. You will be prompted immediately for a blank floppy disk. Insert it into the floppy drive that you specified in the backup path and the disk requester will be satisfied. Should you want to abort, simply hit the CANCEL gadget in the requester. Also, you may abort the backup process at any time by hitting the STOP gadget which appears in the top left area of the screen. This gadget is only checked prior to the start of the next file copy operation, so be patient if it does not respond immediately. As each floppy disk is filled, you should promptly label it. MRBackup automatically generates volume names of the form: Backup MM-DD-YY. Also to be noted is the fact that the files on the backup media retain the creation/modification date (I wish they were distinct) of their counterparts on the home device. You will find that the Amiga's multitasking environment shines when using this program. For those long-haul backups, get everything started, then shove all the windows to the back and go start something useful. MRBackup will carry on without your watchful eye. When it needs a disk, the disk requester will pop out in front of everything and MRBackup will ask (out loud, if you allow it) for another disk. Having something else to do will make the time pass faster. Restoring the Backups No, this isn't always the bad part. Backup and restore can also be useful when your hard disk is crowded and you have to "juggle" data around. The restoration process is quite similar, mechanically, to the backup process - it's just reversed. In addition, the meanings of the pathname specifications are altered somewhat. The "Home path" describes the destination for the restored files and, as with the backup process, may specify the hard drive only or a directory specification. The "Backup path" describes the file or files to be restored and thus may be defined down to the file level (1 file). Note that on a restore operation, the file creation date of the backup file is compared to its matching file (if it exists) on the home device. If the file on the home device is newer, the file will not be replaced. If this is desired, the file on the home device must be deleted first. A later version of this program will probably offer a "force" or "force with prompt" option. Warranties There are no warranties, either expressed or implied, with regard to the use of this program. You didn't pay for it (did you?), so how you gonna' get you money back? Seriously, folk, I've tested this beastie fairly thoroughly (I intend to USE it!), but you know how things go...there may be a bugaboo or two lurking in there. Please exercise it a little before committing your life (your precious data) to its care. Permissions This program is contributed to the public domain, as a token of gratitude for the many wonderful programs I have received through the same channels. Feel free to enhance, destroy, sell, distribute or otherwise benefit from the legal use of this program. I would love to hear from those of you who find this either useful or useless (with specific criticisms in the latter case). If you make any enhancements (there's room for PLENTY), please share them with me and the rest of the world. I can be reached as: mark@unisec.USI.COM (at least a couple more months) or Mark R. Rinfret 348 Indian Avenue Portsmouth, RI 02871 401-846-7639 (home) 401-849-4174 (work)